Apparatus and method for spacing or kerning typeset characters

ABSTRACT

Method and apparatus for producing improved print quality of alphanumeric character combinations. Each character is preassigned closest spacing points at the top, middle, and bottom. Successive characters are positioned so that one leftmost point of a new character coincides with one right-most point of the previous character, thereby insuring close intercharacter spacing. Distance measurements from the character body to each spacing point are retained in memory. The left measurements at top, middle and bottom of a new character to be positioned in the print line are subtracted from the right measurements of the top, middle and bottom, respectively, of the previous character in the print line using subtractor circuitry. Maximum value circuits are used to select the largest of the differences thus formed. The print line is displayed on an oscilloscope. The invention may also be practiced using a general purpose digital computer suitably programmed.

United States Patent [191 Mathews [54] APPARATUS AND METHOD FOR SPACING OR KERNING TYPESET CHARACTERS [75] Inventor: Max Vernon Mathews, New Providence, NJ.

[73] Assignee: Bell Telephone Laboratories-Incorporated, Murray Hill, Berkeley Heights, NJ.

[22] Filed: Aug. 19, 1970 [211 Appl. No.: 65,056

[52] US. Cl. ..l97/84-A, 197/19, 95/4.5 R, 340/324 A [51] Int. Cl. ..B4lj 19/58 [58] Field of Search ..197/19, 20, 84, 84 A, 84 B; 199/18; 95/45, 340/324, 324 A, 325

[S 6] References Cited FOREIGN PATENTS OR APPLICATIONS 665,889 M 1/1952 GreatBr|ta|n....'I.... ES/43R 4 Jan. 23, 1973 OTHER PUBLICATIONS IBM Technical Disclosure Bulletin, Selective Adjacent Character Space Control, .I. O. Schaefer, Vol. 1 1, No. 11, April 1969, pp. 1480, 1481 Primary ExaminerErnest T. Wright, Jr. AttorneyR. J. Guenther and William L. Keefauver [5 7] ABSTRACT Method and apparatus for producing improved print quality of alphanumeric character combinations. Each character is preassigned closest spacing points at the top, middle, and bottom. Successive characters are positioned so that one left-most point of a new character coincides with one right-most point of the previous character, thereby insuring close intercharacter spacing. Distance measurements from the character body to each spacing point are retained in memory. The left measurements at top, middle and bottom of a new character to be positioned in the print line are subtracted from the right measurements of the top, middle and bottom, respectively, of the previous character in the print line using subtractor circuitry. Maximum value .circuits are used to select may also be practiced using a general purpose digital computer suitably programmed.

4 Claims, 8 Drawing Figures PATENTEDJAH23 I975 3,712,443 SHEET 1 OF 3 F/G. L4 PRIOR ART F/G. l8 PRIOR ART 3:2 /Nl/NTOR M. M MATHEWS 47' TORA/EV PATENTEDJM 23 1915 SHEET 2 BF 3 FIG. 4

TMQ TLQ Rm MLQ BRQ BLL'L D 3 3 Ru m MRu m 602 rut-m 603 SUBTRACTOR SUBTRACTOR A SUBTRACTOR I 406 408J MAX.VALUE r409 MAX.VALUE AccuMOLATOR' cOARsE I T I E AMP.

COARSE x FINE eo EFLAMP BUFFER CHARACTER MEMORY GENERATOR Y FINE OEEL. AMR A| P 403 412 I g (3: 5: 1 1| KEYBOARD 605 WW ANO/OR A 4O| cOMPuTOR INTENSITY AMP. 606

APPARATUS AND METHOD FOR SPACING OR KERNING TYPESET CHARACTERS BACKGROUND OF THE INVENTION 1. Field of the Invention This invention relates to typesetting and particularly to typesetting methods which use automatic means for character spacing.

2. Description of the Prior Art The history of printing has been characterized by a quest for mechanized methods for producing high quality print. Letters individually drawn by hand may be freely placed and styled for maximum readability and quality. Drawn letters may include portions which overhang or even intersect their neighbors when the artist feels it adds to the quality of the script. In prior art mechanical printing, the freedom of the manuscript artist is lost. Each type face is cast on a rectangular metal matrix of a specified line width, and all portions of the body of the letter appear within the boundaries of the type matrix.

Since the methods of this invention have broad appli: cation to prior art systems, the term typesetting is used herein and in the appended claims in the broad sense. It covers the operation of any character compositor including the placement of characters by typewriter, computer-driven composition machines, certain line printers, and any other system where characters are placed sequentially in a print line whether for display (for example screen viewing), or production (for example typewritten copy), or for reproduction (for example printing plates).

The typewriter is properly included as a typesetting device under the above broad description of typesetting. It also qualifies under the more general narrow view of typesetting, i.e., only reproduction, since typewritten copy is frequently directly photographed to produce offset printing plates. Generally, typewritten print is of lesser quality than type matrix print.

A normal typewriter-that is, a non-proportional spacing typewriter-produces characters which occupy a uniform, unvarying line width. Thus the narrowest letter i is given the same space to occupy, the same line width, as the widest letter M.

Proportional spacing typewriters improve this situa- M" might occupy six units. Such print is still of lesser quality than type matrix print, since the line widthof metal matrix characters can be more closely controlled to give fine gradations of spacing.

Limitations of print quality imposed by the typewriter and type matrix printing are of mechanical origin. The same limitations do not exist, for example, in computer controlled typesetting systems wherein characters are drawn, or painted, or projected on a film or cathode ray oscilloscope face by an electron gun or light beam. However, prior art systems do not take full advantage of their freedom of such limitations.

An exemplary system is described in U. S. Pat. No. 3,471,848 issued Oct. 7, I969, to S. Manber wherein each character is formed on the face of a cathode ray oscilloscope by a large number of vertical scans. In the Manber system, character widths are divided into small increments allowing relatively precise widths to be assigned to each character. None the less, the line width of a given character in a given font is fixed. The space alotted to a character is as definite as though the type were cast of metal. Print quality would be improved if means were provided for allowing adjacent character identity to effect spacing. This would lead to the overhang of adjacent type bodies and reduced intercharacter spacing for many letter pairs.

SUMMARY OF THE INVENTION The present invention includes apparatus and methods for spacing typeset characters within words for printing, projecting, or other presentation in order to reduce the space between characters. Each character is assigned, not as a single spacing measurement, as in prior art systems, but a multiplicity. Each time the character appears an appropriate width measurement is calculated for the current instance of the character, thus allowing words to be formed with reduced intercharacter space. In this system, it should be clear it is not the body of the character which is variable but the spacing between the body of the character and its neighbor on either side.

Because this invention entails spacing measurements taken at diverse vertical levels, some type fonts will produce character combinations with overhanging portions of adjacent type bodies. This result should not be confused with fonts which are normally overhanging, e.g., italics. Such normally overhanging type styles may also benefit from the closer spacing provided for by this invention.

Without importing limitations to the invention herein fully described and claimed, assume, for example only, the arrangement wherein six spacing measurements are provided for each character-two at the top, middle, and bottom of the character body, to the left and right sides. Assume further that characters are generated from left to right. As each new character is appended to the right of the character previously placed in the word being generated, the three right spacing measurements of the previous character are mathematically combined with the three left spacing measurements of the new character. From these calculations, a width measurement is selected which displaces the new character from the previous character. Certain character pairs thereby appear with reduced intercharacter spacing, thus producing a print line with improved appearance and print quality. Other characteristics and advantages of the invention will become evident from the following descriptionof the drawing.

BRIEF DESCRIPTION OF THE DRAWING FIGS. 1A and 18 represent prior art character spacmg;

FIG. 2 is one character spacing measurement embodiment conforming to the invention;

FIGS. 3A and 38 represent character spacing according to the present invention;

FIG. 4 is a circuit diagram of a system for performing the inventive method;

FIG. 5 is a detailed diagramof a maximum value circuit usedin the system ofFlG. 4;

FIG. 6 is a segment of a computer program suitable for performing the invention.

DETAILED DESCRIPTION FIGS. 1A and 1B show an example of character spacingperformed by prior art type'setters whether characters are'produced by metal type matrix, proportional spacing typewriter, photocomposer or computer driven display. The common characteristic is that each letter occupiesja fixed width on the print line.

FIG. 1A illustrates a particular-system in which individual letter characters are stored in the memory of a computer system. A pair of coordinate axes is provided as a reference frame for each character. Each character is described in the computer memory in terms of the lines or structures or patches of area which comprise the bodyof the'type face. See, for example, U. S. Pat. No. 3,422,419 Generation of Graphic Arts lMages issued to M. V. Mathews and H. S. McDonald, assigned to the present assignee. The line B forms the base on which the letters sit. The line H represents the limit of the lowest descender ina given type font which extends belowthe base line. Width Wrepresents the line width of the character and may be different for each character in each font.

Letters are concatenated in order to form words as shown in FIG. 18. For metal matrix type, the slugs of metal are simply placed side by side. In a proportional spacing typewriter,,the carriage or printing mechanism is spaced over by an amount W after printing the character. In 'prior'art computer typesetting systems, the same effect is achieved by adding the quantity W to the stored value of the previous character displacement in the print line. This produces the displacement of the new coordinate axis to form the next letter. I

FIG. 2 demonstrates'how in one embodiment of the invention a multiplicity of spacing measurements are assigned to a single character. The cross-hatched area 20 is a general representation of the outlines of the body of a character of type. Three pairs of measure-v ments are shown in theFigure, though some type fonts may be adequately described with fewer than three pairs and others, may be improved by the use of more than three pairs. I I

Each pair, for example, T and T represents spacing measurements of the character taken at the same vertical level on the left and right of the character bodyi.e., Top Left (T and Top Right (T This as- V tated by the stored values of T T etc. These dots are shown to make visible the concatenation points where characters are joined into words; otherwise, they have no physical significance. ,7

The six letters of FIG. 3A are formed into words in FIG. 33. By utilizing the multiplicity of spacing measurements, the letters in FIG. 33 have been spaced closer together than those in FIG. 1B. The letter F and the letter 0 have been displaced by an amount which corresponds to the coincidence of point 303 and 304 in FIG. 3A into the single point 311 in FIG. 33. Of

the three right-hand points of the letter F" and the three left-hand points of the letter 0, only the middle points coincide. Similarly, the letters 0 and g are joined at point 312 in FIG. 3B representing points 305 and 306 in FIG. 3A. Points 307 and 308 are joined in point 313. Points 309 and 310 are joined in point 314.

The invention will be more clearly understood from the following illustrative remarks. Consider that a first character, for example P as shown in FIG. 3A, has been placed in the print line. The position of this first character is specified by the location of its origin, that is, the horizontal displacement of its origin from the left margin. When a second character is to be placed in the print line, for example A as shown in FIG. 3A, its displacement must be greater than that of the first character in order'that the second character will appear to its right.

If the value of T for the first character is added to the value of the displacement of the firstcharacter (that is, if T, is taken as the width of the first character), the origin for the secondcharacter will fall on top of the T concatenation point of the first character, for example, point 307 in FIG. 3A. Now, if T for the second character is subtracted from this sum, the origin of the second character is moved to the left by an amountwhich causes the T concatenation point of the second character, point 308 in FIG. 3A, to fall on top of the T concatenation point. for the first suresthat the T, measurement of a character already placedon the print line will appear at the-same vertical level as the T measurement of the new character to be placed next in the print line. Thesame is true for measurements M and M, (Middle), and 8,, n (Bottom).

' FIGS. 3A and 3B illustrate the use of multiple spacing measurements to improve thequalityof print. FIG. 3A shows six measurements applied to a number of letters. The measurements T,,, T and the rest, are shown in FIG. 3A a's' six points associated with each' of the illustrated characters. The location of point 300, for example, illustrated by a dot on the Figure, represents the measurement T for the letter *F. Since dot 300 happens to appear on the coordinate axis, in thisexample, TL 0. The location of point 301 represents the measurement T The location of points 302 and 303, respectively, represents the measurement M andM B and B are also represented. It will be understood character. This appears as point 313 in FIG. 38. I

Addition of the value of T of the first character and subtraction of the value of T of the second character is equivalent to using the difference T T,,, (where subscripts I and 2 indicate the first and second characters respectively) as the effective width of the first character. This effective width is added to the displacement of the first character to obtain the new displacement of the second character. 1

Although the T and T measurements were used illustratively in the above discussion, it is clear that the same procedure could be followed for M, and M which would cause the coincidence of the middle concatenation points, and also for the B, and B which would cause the coincidence of the bottom concatenation points. It should be clear that as the effective width of the first character increases, the .second character I'novesfarther to its right. Therefore, by calculating all three width values and then choosing the greatest of the three as the effective width of the first'character, the second character is displaced to the right of the first bythe greatest amount of the three possibilities while still retaining the coincidence of a pairof concatenation points. The result achieved is the same as though the second character were moved closer and closer to the first character until two concatenation points first coincide.

It should be again emphasized that the dots have no physical significance outside of their representation of the spacing measurements which have been shown diagramatically in FIG. 2. The physical displacement of the characters in the print line is determined by mathematical manipulation of these spacing measurements according to the following algorithm.

Three tentative width. measurements are produced combining the right-hand spacing measurement at each vertical level of a character already positioned in the print line with the appropriate left-hand spacing measurement of the new character to be placed. Obviously, similar results may be obtained when the characters are appended from right to left. Let the index value i identify the new character to be placed on the print line. The index value i-l then indicates the previous characterthat is, the one already positioned in the print line. The three tentative width values W,, W,, and W, are then formed by the expressions:

1 au-n un s ari-r) ut) The actual displacement of the origin of the new character is then given by the maximum of these three tentative width values. That is, the displacement W is given the expressioni In this system, a multiplicity of spacing measuremerits are preassigned to each of the characters. From these spacing measurements, a multiplicity of tentative width measurements are derived. From these tentative width measurements a suitable width measurement is chosen for displacing the new character from the previous one. In prior art systems, the characters are each preassigned a single measurement which is both the width and spacing measurement.

FIG. 4 is an embodiment of one hardware implementation of the above-described algorithm. System 400 is a display system and is found in the prior art. See, for example, US. Pat. No. 3,311,908 by C. P. Halsted et al., issued Mar. 28, 1967. In system 400, cathode ray oscilloscope 401 is used to display sequential characters in the print line. The electron beam in oscilloscope 401 is coarsely positioned by digital-to-analog converters 413 and 414 and amplifiers 607 and 608 which produce the horizontal and vertical deflection signals, respectively, for positioning the origin of each character to be generated. Characters are imputed by unit 402 which may simply be a keyboard or, preferably, a digital computer which contains a character string in storage. As a digital computer, unit 402 may have any of the usual input devices such as a character keyboard, a magnetic tape unit, or a telecommunications channel for supplying the character string.

Characters are conveyed from unit 402 to the buffer memory 403 in which is stored information needed to generate the selected character and also spacing measurements needed to implement the instant invention. The identity of the character to be displayed is conveyed to character generator 412 which controls the details of shaping the selected character. Character generator 412 exerts fine control of the electron beam necessary to form the selected character on the face of oscilloscope 401 with the aid of X deflection amplifier 604, Y deflection amplifier 605 and intensity amplifier 606.

For this embodiment, again assume three pairs of width measurements are employed and that the characters are positioned from left to right. This spacing information is conveyed through cable 404 to delay units 601, 602 and 603 and subtractor circuits 406, 407, and 408. The three right-hand spacing measurements T M and 8,, of the requested character are conveyed through separate delay units 601, 602 and 603 to the minuend inputs of subtractor circuits 406, 407, and 408, respectively. The lefthand width measurements T,,, M, and 8,, are conveyed'directly to the subtrahend inputs of subtractors 406, 407 and 408, respectively.

In the embodiment of FIG. 4, it is assumed that characters are sequentially positioned at a fixed rate of one character-time per character, Delay units 601, 602, and 603 cause a single character-time delay to be applied to the signals conveying the right-hand measurements from buffer memory 403 to subtractors 406, 407, and 408. As a result, the outputs of delay units 601, 602, and 603 represent the three right-hand measurements of the character previously placed in the print line, one character-time before the positioning of the present new character.

In the embodiment of FIG. 4 delay units 601, 602, and 603 may be any suitable devices for providing delay to electrical signals such as electro-acoustic or resistor-capacitor delay lines. In other embodiments it may prove advantageous to position characters asynchronously and not at a fixed rate. In this case delay units 601, 602, and 603 may be replaced by other suitable storage elements for registering and retaining the measurement of the character previously placed in the print line.

Subtractors 406, 407, and 408 form'the three tentative width measurements W W,, W, in accordance greatest of these three tentative width values, according to Equation 2, which is subsequently conveyed to accumulator 411. Maximum value circuit 409 selects the larger of the two tentative width measurements appearing on the outputs of subtractors 406 and 407. Maximum value circuit 410 selects the larger of the quantities produced by maximum value circuit 409 and subtractor 408. Accumulator 411 sums the selected width measurement with the displacement of the previous character to form and store the displacement of the requested character.

The embodiment of FIG. 4 is implemented with spacing measurements expressed as binary numbers appearing on a number of parallel leads. Subtractor circuits and accumulator circuits suitable for this implementation are well known in the art. For details see any of a number of standard texts on logic circuit design, for example, Chapter 9 of Pulse, Digital and Switching Waveforms by Millman and Taub (McGraw-Hill, 1965).

FIG. 5 shows an embodiment of a maximum value circuit suitable for use in circuits 409 and 410 in the embodiment of FIG. 4. Two multi-bitbinary numbers A and B comprised of parallel bits A, through A, and parallel bits B, through 8,, respectively, where k represents the number of bits in A or B, are logically compared on a parallel bit-wise basis to produce an output number C comprised of bits C, through C,,, which is equal to A- or B, whichever isnumerically the larger. of the two. High order bits A, and B, are compared in cell 500; low order bits A, and B, are compared in cell 502. A cell of the type shown at 501 compares each of the (k 2) intervening bits of A and B, represented by bits A, and B where j k-2 The larger binary number'A or B is identified as being the number which is equal to one in the highest order bit positioned in which the two numbers differ. That is, either A or B will be larger, depending on which number has the highest order bit equal to one while the corresponding bit of the other number is equal to zero. If A and B do not differ in any bit position, then A and B are equal and C= A B.

The communicating signals a, through a,, and b, through b,, indicate to adjacent cells whether A or B has been determined to be the larger number. At any given point in the circuit shown in FIG. 5, a l'and b 0 indicates that A has been'determined to be the larger.

Consequently, all subsequent cells will produce the bits of A as their output-When a 0 and b l B has been I'- I determined to be the larger, and the output of all suc- "(cessive cells will be the bits of B. When a b 0,

neither number has yet been identified as the larger, and eachsubsequent cell is free to make its own comparison of the bits'of A and B. in this way, the highest order cellto find the bits of A and B to be different will determine the output ofall of the succeeding, i.e., lower order,'cells. I

The operation of this circuit of FIG. 5 is as follows. l-ligh'order cell 500provides OR gate 511 to logically combine the two input bits A, and B, and form the outfollowing'truth table relates the-logical inputs and outputs of AND gate 508:

Input; Inhibiting And Gate Terminal input 508 714 Terminal 713 Output 1 l r 0 l 1 0 l 0 0 0 i 0 I 0 A The application of a logical one to inhibiting input terminal 713 may be said to inhibit AND gate 508 since the output of AND gate 508 will be a logical zero regardless of the logical value at normal input terminal 714. Similarly, the application of alogical zeroto normal input terminal 714 may be said to inhibit AND gate 508. The application of a logical zero to inhibiting input terminal 713'may be said to enable" AND gate 508 since the output of AND gate 508 will take on the same logical value of normal input terminal 714. When AND gate 508 is thus enabled'the logical signal on the normal input terminal 714 may then be said to be gated through" AND gate 508. AND gates 504, 505, 506, 507, 509, 704 and 705 each have one normal input terminal and one inhibiting input terminal.

denoted in each instance by a circular dot in the drawing. Each of these AND gates will be understood to operate in a manner analogous to that described with reference to AND gate 508. AND gate 508 will produce a, 1 when A, =1 and B,=,0. Similarly, AND gate 509 will produce b, 1 when A, 0 and B, 1. When A, 113,, a, b, 0. Thus, the correct communication is provided to the next cell. Low order cell 502 accepts information hits a,, an

b,, from the next higher adjacent cell and input bits A, and B,,. When previous cells have determined that the number A is the larger, AND gate 705 will be inhibited by the one appearing on lead a,, 'AND gate 704 will be enabled by zero appearing on b,, Thus the bit A, will be gated through AND gate'704 and OR gate 712 to appear as the output bit C,,. Similarly, bit 8,, will be gated through AND gate 705 and or gate 712 as output bit C when communication from the previous cell makes lead A,, 0 and b,, 1. When no determination has been made by prior cells, and both communicating leads are equal to zero, both AND gates 704 and 705 ar'eenabled, thereby gating bits A), and 8,, through to OR gate 712. Output C thus takes on a logical value equal to the numerical maximum of the two input bits A, and B, by the action of OR gate 712 in the same fashion as OR gate 511, described above.

' Generic cell 501 processes communication signals entering on inputs a, and b,., the same way as above described'for 'cell'502. AND gates 504,505, and OR gate 512 are assembled in the same fashion and perform the same functions as described for AND gates 704 and 705 and OR gate 712, and .produce an output on lead C What remains is a description for cell 501 of the manner in which OR gates'513 and 514 produce communication'signals to the next successive cell over Ieadsa,andb,

If a,., l and b, 0, it means that'binary number A has previously been determined to be the larger; this informationlmust be passed to the next cell. The one on lead d, is conveyed through OR gate 513 directly onto lead a, The values'of A, and B, can thus have no effect on the value of a, when a, l. The one on lead 11,, also inhibits AND gate 505, thereby inhibiting AND gate 507. The values of A, and B, can 'thushave no effect on the value of b, when a, 1. Since lead b, 0, OR gate 514 produces a zero on lead b,, all inputs to OR gate. 514 being logically zero. Therefore, the combination entering on the left side of cell 501 is preserved on the right side regardless of the values of A, and By. i g

Analogous activity takes. place when it is determined in the previouscellthatB is the larger of the two numbers, thereby producing azero on output lead a, an a one on output lead b,. v I

When there has been no prior determination of which number has the larger magnitude, i.e., a, b, 0, cell 501 may be called upon to perform this function. If A, and B, bits are both equal toone, AND gates 506 and 507 are both inhibited, insuring that a, and b, are zero. If A, and B, are both zero, AND gates 504 and 505 are inhibited, thereby inhibiting AND gates 506 and 507 and assuring an output of a,= and b,= 0. If A, 1 and B, 0, AND gate 504 is enabled, thereby enabling AND gate 506 and providing a one output through OR gate 513 on lead a,. AND gates 505 and 507 are inhibited, thereby assuring b, 0. Analogous signals can be traced in the case of i A,= 0 and B, l.

The circuit of FIG. 5 is constructed of OR gates and of AND gates with inhibiting inputs. Such elements are well known to those versed in the logic design art. Cir cuit details of these elements will also be found in Chapter 9 of the above-referenced text by Millman and Taub.

FIG. 6 represents an additional embodiment of the typesetting algorithm described above. FIG. 6 shows a segment of a computer program suitable for compiling and execution on a general purpose digital computer which provides the control signals for the typesetting or display mechanism.

The computer program statements shown in FIG. 6 are written in FORTRAN IV. For this program, information relating to each text character is arranged in a number of one dimensional arrays of data. The array TR(I) is a one dimensional array storing a number of values T asdefined for FIG. 2, where I is an index which points to the characters in the string of text which is to be displayed. Similar one dimensional arrays store the values of the variables T M and the rest. The variables W1, W2 and W3 represent storage locations which contain the results of the tentative width calculations as described in Equations 1 above.

Statements 100, 101, and 102 direct the computer to retrieve from memory the three left-hand spacing measurements for the new character indicated by index I, subtract them from the corresponding right-hand spacing measurements for the previous character in the print line, and store the difference as tentative result measurements in the variable locations W1, W2, and W3.

Statements 103 through 105 provide the maximum value function described above in Equation 2. The variable W is a storage location where the maximum of the three tentative width values will be stored after the execution of these three statements. In statement 103 storage location W is initialized with the value of the first tentative width measurement W1. Statement 104 is a conditional substitution statement. If the quantity stored in location W2 is greater than the quantity stored in location'W, the quantity stored at location W is replaced with the quantity stored at location W2. Statement 105 performs similarly. If W3 is greater than W,W is replaced by W3.

Execution of thesethree statements will result in the I conditional assignment of WI as the maximum of the three tentative widths. If W2 is greater than W1, W2 will be conditionally assigned as the maximum value. W3 will then be compared with the results and assigned as-the maximum value if it is larger than the other two. Having reached statement 106, the maximum of the three tentative widths is stored in location W. State ment 106 now adds the width value to the storage location K wherein the displacement on the print line of the new character is stored. Statement 107 is a subroutine call to a segment of program by the name of PLACE which places the character pointed to by the current value of the index I on the display surface with a horizontal displacement equal to the value stored in location K. The values of K and I are arguments to the subroutine PLACE.

Further instructions in the program, not shown, select sequential characters from a string of text, increment index pointer I, and define in detail machine steps of the character generation subroutine PLACE. Also not shown in FIG. 6 are various control statements and additional FORTRAN IV statements which are necessary to compile and execute a working program. Such details are well known to those versed in the programming art. See, for example, Basic FORTRAN IV for the 013-600 Series Computers, by Rudolph G. Schenbeck (Addison-Wesley, 1968).

What is claimed is:

l. The improved machine method of typesetting characters comprising the steps of:

generating for each character a multiplicity of spacing measurements directed to the right and to the left of each character;

subtracting the right directed measurements associated with a first character from the left directed measurements associated with a second I character;

selecting a maximum of the resulting differences; and

spacing said second character from said first character according to said selected maximum. 2. The method of spacing alphanumeric characters along a linear display comprising the steps of establishing, for each character, optimum spacing values for a plurality of registered positions vertically displaced from one another on each said character;

comparing said spacing values at all registeredpositions for pairs of said characters to be displayed juxtaposed; and

displaying said pairs with a spacing corresponding to the optimum compared spacing values. I

3. Apparatus for spacing a new character over from a previous character in a character compositor comprismg storage means containing data describing each character and data comprising a multiplicity of spacing measurements for each character;

means for subtracting the multiplicity of spacing measurements of the previous character from the multiplicity of spacing measurements of the new character;

means for selecting the maximum of the difierences thus formed; and means for positioning the new character at a position wherein the new character is spaced over from the previous character by said maximum difference.

4. In a character compositor, an improved means for spacing characters comprising:

means for storing a multiplicity of spacing measurements for each character, some of said measurements directed to the right of each character, some of said measurements directed to the left of each character;

means for subtracting the right directed measurements of a first character from the left directed 11 measurements of a second character thereby producing a multiplicity of tentative width measurements; 1

means for selecting the maximum of said width measurements; and t v means for displaying said second character at a position spaced'from said first character by said selected measurement.

s s s a I 

1. The improved machine method of typesetting characters comprising the steps of: generating for each character a multiplicity of spacing measurements directed to the right and to the left of each character; subtracting the right directed measurements associated with a first character from the left directed measurements associated with a second character; selecting a maximum of the resulting differences; and spacing said second character from said first character according to said selected maximum.
 2. The method of spacing alphanumeric characters along a linear display comprising the steps of establishing, for each character, optimum spacing values for a plurality of registered positions vertically displaced from one another on each said character; comparing said spacing values at all registered positions for pairs of said characters to be displayed juxtaposed; and displaying said pairs with a spacing corresponding to the optimum compared spacing values.
 3. Apparatus for spacing a new character over from a previous character in a character compositor comprising storage means containing data describing each charActer and data comprising a multiplicity of spacing measurements for each character; means for subtracting the multiplicity of spacing measurements of the previous character from the multiplicity of spacing measurements of the new character; means for selecting the maximum of the differences thus formed; and means for positioning the new character at a position wherein the new character is spaced over from the previous character by said maximum difference.
 4. In a character compositor, an improved means for spacing characters comprising: means for storing a multiplicity of spacing measurements for each character, some of said measurements directed to the right of each character, some of said measurements directed to the left of each character; means for subtracting the right directed measurements of a first character from the left directed measurements of a second character thereby producing a multiplicity of tentative width measurements; means for selecting the maximum of said width measurements; and means for displaying said second character at a position spaced from said first character by said selected measurement. 